12 research outputs found
CUP: Comprehensive User-Space Protection for C/C++
Memory corruption vulnerabilities in C/C++ applications enable attackers to
execute code, change data, and leak information. Current memory sanitizers do
no provide comprehensive coverage of a program's data. In particular, existing
tools focus primarily on heap allocations with limited support for stack
allocations and globals. Additionally, existing tools focus on the main
executable with limited support for system libraries. Further, they suffer from
both false positives and false negatives.
We present Comprehensive User-Space Protection for C/C++, CUP, an LLVM
sanitizer that provides complete spatial and probabilistic temporal memory
safety for C/C++ program on 64-bit architectures (with a prototype
implementation for x86_64). CUP uses a hybrid metadata scheme that supports all
program data including globals, heap, or stack and maintains the ABI. Compared
to existing approaches with the NIST Juliet test suite, CUP reduces false
negatives by 10x (0.1%) compared to the state of the art LLVM sanitizers, and
produces no false positives. CUP instruments all user-space code, including
libc and other system libraries, removing them from the trusted code base
Teaching operating systems concepts with SystemTap
The study of operating systems is a fundamental component of all undergraduate computer science degree programmes. Making operating system concepts concrete typically entails large programming projects. Such projects traditionally involve enhancing an existing module in a real-world operating system or extending a pedagogical operating system. The latter programming projects represent the gold standard in the teaching of operating systems and their value is undoubted. However, there is room in introductory operating systems courses for supplementary approaches and tools that support the demonstration of operating system concepts in the context of a live, real-world operating system. This paper describes an approach where the Linux monitoring tool SystemTap is used to capture kernel-level events in order to illustrate, with concrete examples, operating system concepts in the areas of scheduling, file system implementation and memory management. For instructors and students (where often for the latter seeing is believing) this approach offers an additional simple and valuable resource for solidifying understanding of concepts that might otherwise remain purely theoretical
Architecture and Applications of the Hy+ Visualization System
The Hy+ system is a generic visualization tool that supports a novel visual query language called GraphLog. In Hy+ , visualizations are based on a graphical formalism that allows comprehensible representations of databases, queries, and query answers to be interactively manipulated. This paper describes the design, architecture and features of Hy+ with a number of applications in software engineering and network management. These examples demonstrate the benefits of using a visualization-based system to carry out tasks of ever-increasing complexity in these areas and others